import axios from './config'

/**
 * 用户登录接口 用户名与邮箱二选一 密码必填
 * @param {object} userInfo 用户信息
 * @param {string} userInfo.username 用户名
 * @param {string} userInfo.password 密码
 * @param {string} userInfo.email 用户邮箱
 */
export async function login (userInfo) {
  return axios.post('/auth/login', userInfo)
}

/**
 * 用户注册接口
 * @param {object} userInfo 用户信息
 * @param {string} userInfo.username 用户名
 * @param {string} userInfo.password 密码
 * @param {string} userInfo.email 用户邮箱
 * @param {buffer} [userInfo.avatar] 用户头像
 * @param {string} userInfo.regCode 注册码
 */
export async function regist (userInfo) {
  return axios.post('/auth/regist', userInfo)
}

/**
 * 判断用户名是否已被注册
 * @param {string} username 用户名
 */
export async function usernameExists (username) {
  return axios.get(`/auth/username?username=${username}`)
}

/**
 * 判断邮箱是否已被绑定
 * @param {string} email email
 */
export async function emailExists (email) {
  return axios.get(`/auth/email?email=${email}`)
}

/**
 * 发送邮箱验证码
 * @param {string} email email
 */
export async function sendEmailCode (email) {
  return axios.get(`/auth/email/code?email=${email}`)
}

/**
 * 通过邮箱找回密码
 * @param {object} data 参数参考石墨文档
 */
export async function findPasswordByEmail (data) {
  return axios.post('/auth/password', data)
}
